﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CajaChica.Entidades;
using CajaChica.Interfaces;
namespace CajaChica.Clases
{
    class clsCheques
    {
        cajaEntities objCajaEntidades;
        public clsCheques()
        { 
        
        }

        public ArrayList CargarBancos()
        {
            objCajaEntidades = new cajaEntities();
            ArrayList lista = new ArrayList();
            var bancosQuery = from b in objCajaEntidades.personas
                              where b.rs.Contains("banco")
                              select new { b.id, b.rs };
            foreach (var datos in bancosQuery)
            {
                lista.Add(datos);
            }

            return lista;
        }

        public void Guardar(int banco, DateTime fecha, int serie, 
            int numero, int persona, decimal monto, string motivo, 
            string moneda, string movimiento, int usuario)
        {
            objCajaEntidades = new cajaEntities();
            var idPersona = from pp in objCajaEntidades.personas
                            where pp.rut.Equals(persona)
                            select new { pp.id };
           
            cheque cheques = new cheque
            {
                id_banco = banco,
                fecha = fecha,
                serie = serie,
                numero = numero,
                id_persona = persona,
                monto = monto,
                motivo = motivo,
                moneda = moneda,
                tipo_movimiento = movimiento,
                id_usuario = usuario,
                fecha_registro = DateTime.Now
            };

            try
            {
                objCajaEntidades.AddTocheque(cheques);
                objCajaEntidades.SaveChanges();
            }
            catch (Exception ex)
            { 
                
            }
        }

        public void GuardarCambios()
        {
            
        }

        public void Editar()
        {
            
        }

        public void Eliminar(int id)
        {
            objCajaEntidades = new cajaEntities();
            cheque cheque = objCajaEntidades.cheque.FirstOrDefault(
            a => a.id == id);

            objCajaEntidades.DeleteObject(cheque);
            objCajaEntidades.SaveChanges();
        }

        public ArrayList CargarDatosGridView()
        {
            ArrayList lista = new ArrayList();
            objCajaEntidades = new cajaEntities();
            
            var listaChequesQuery = from c in objCajaEntidades.cheque
                                    join pb in objCajaEntidades.personas on c.id_banco equals pb.id
                                    join pp in objCajaEntidades.personas on c.id_persona equals pp.id
                                    select new 
                                    { 
                                        ID = c.id,
                                        BANCO = pb.rs,
                                        FECHA = c.fecha,
                                        SERIE = c.serie,
                                        NUMERO = c.numero,
                                        A_LA_ORDEN_DE = pp.rs,
                                        MONTO = c.monto,
                                        MOTIVO = c.motivo,
                                        MONEDA = c.moneda,
                                        MOVIMIENTO = c.tipo_movimiento
                                    };
            foreach (var datos in listaChequesQuery)
            {
                lista.Add(datos);
            }
            return lista;
        }

        public void CargarDatosComboBox()
        {
            
        }

        public void Buscar(string criterio)
        {
            
        }
    }
}
